/*
	Adobe Systems Incorporated(r) Source Code License Agreement
	Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
	
	Please read this Source Code License Agreement carefully before using
	the source code.
	
	Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive, 
	no-charge, royalty-free, irrevocable copyright license, to reproduce,
	prepare derivative works of, publicly display, publicly perform, and
	distribute this source code and such derivative works in source or 
	object code form without any attribution requirements.  
	
	The name "Adobe Systems Incorporated" must not be used to endorse or promote products
	derived from the source code without prior written permission.
	
	You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
	against any loss, damage, claims or lawsuits, including attorney's 
	fees that arise or result from your use or distribution of the source 
	code.
	
	THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT 
	ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
	BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
	FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  ALSO, THERE IS NO WARRANTY OF 
	NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT.  IN NO EVENT SHALL MACROMEDIA
	OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
	EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
	PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
	OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
	WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
	OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
	ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

package com.adobe.webapis.mappr 
{
	
	import com.adobe.webapis.mappr.Position;
	import com.adobe.webapis.mappr.Considerations;
	import com.adobe.webapis.mappr.Match;
	
	/**
	*	Class that represents a Place within the Mappr API
	* 
	* 	@langversion ActionScript 3.0
	*	@playerversion Flash 8.5
	*	@tiptext
	* 
	* 	@author Mike Chambers, Adobe Systems Incorporated
	* 
	* 	@see http://www.mappr.com/about/api.phtml	
	*/		
	public class Place
	{
		private var _name:String;
		private var _fullName:String;
		private var _position:Position;
		private var _considerations:Considerations;
		private var _match:Match;
		private var _lineage:Array;
		private var _id:String;
		private var _type:String;
		private var _provenance:String;
		
		/**
		*	Represents a city
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public static const TYPE_CITY:String = "City";
		
		/**
		*	Represents a country
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/		
		public static const TYPE_COUNTRY:String = "Country";
		
		/**
		*	Represents a county
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/		
		public static const TYPE_COUNTY:String = "County";
		
		/**
		*	Represents a state
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public static const TYPE_STATE:String = "State";
		
		/**
		*	Represents a continent
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public static const TYPE_CONTINENT:String = "Continent";
		
		
		/**
		* 	Creates a new Place instance.
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		* 
		* 	@param name [Optional] The name that the Place instance represents.
		*/ 
		public function Place(name:String = null)
		{
			this._name = name;
		}
		
		/**
		* 	The name associated with the place.
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public function get name():String
		{
			return _name;
		}		
		
		public function set name(name:String):void
		{
			this._name = name;
		}
		
		/**
		* 	The full name associated with the place.
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public function get fullName():String
		{
			return _fullName;
		}			
		
		public function set fullName(fullName:String):void
		{
			this._fullName = fullName;
		}		
		
		/**
		* 	The id associated with the place.
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public function get id():String
		{
			return _id;
		}		
		
		public function set id(id:String):void
		{
			this._id = id;
		}	
		
		/**
		* 	The type (i.e. City, Country) describing the Place
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public function get type():String
		{
			return _type;
		}		
		
		public function set type(type:String):void
		{
			this._type = type;
		}				
		
		/**
		* 	The Provenance associated with the place.
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public function get provenance():String
		{
			return _provenance;
		}			
		
		public function set provenance(provenance:String):void
		{
			this._provenance = provenance;
		}	
		
		/**
		* 	The Position associated with the place.
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/		
		public function get position():Position
		{
			return _position;
		}		
		
		public function set position(position:Position):void
		{
			this._position = position;
		}		
		
		/**
		* 	The name associated with the place.
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public function get considerations():Considerations
		{
			return _considerations;
		}		
		
		public function set considerations(considerations:Considerations):void
		{
			this._considerations = considerations;
		}

		/**
		* 	The Match associated with the place.
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public function get match():Match
		{
			return _match;
		}

		public function set match(match:Match):void
		{
			this._match = match;
		}

		/**
		* 	An Array of Places associated with the Place
		* 
		* 	@langversion ActionScript 3.0
		*	@playerversion Flash 8.5
		*	@tiptext
		*/
		public function get lineage():Array
		{
			return _lineage;
		}

		public function set lineage(lineage:Array):void
		{
			this._lineage = lineage;
		}								
	}
}